FRAMES

    Cadrele permit impartirea ferestrei de navigare in mici ferestre, fiecare afisand o anumita pagina web.
Exemplul folosit  contine trei cadre numite X, Y, Z:
 
X
Y Z

Figura 1: Exemplu de afisare cu cadre.

Codul ce produce pagina organizata conform figurii este descris mai jos. Acestase gaseste in fisierul "a.html" iar fisierele ce se incarca in fiecare cadru sunt x.html", "y.html" si "z.html"

filename: a.html
<html>

<head>
<title> A </title>
</head>

<frameset rows = *,*>

<frame src = "x.html" name = "upper">
<frameset cols = *,*>
<frame src = "y.html" name = "lower_left">
<frame src = "z.html" name = "lower_right">
</frameset>
</frameset>
</html>

Formatul documentului frameset este similar unui body document. Incepe si se termina cu etichetele <html> </html> si contine header si title.. Etichetele <frameset> declara impartirea cadrelor iar etichetele <frame> sunt folosite pentru definirea cadrelor (etichetele <frame> nu necesita perechea de inchidere </frame>).

Etichete <frameset>
Reprezinta primul pas in crearea cadrelor si decsriu divizarea ferestrei in cadre mai mici. Fiecare declaratie frameset poate imparti fereastra in randuri sau in coloane, nu in ambele in acelasi timp. Pentru obtinerea unei ferestre ca in figura 1, trebuie intai impartita fereastra in doua randuri (top si bottom), apoi randul bottom (de jos) este impartit in doua coloane (lower left si lower right). Dimensionarea fiecarui cadru poate fi realizata prin specificarea numarului de pixeli, % din dimensiunea ferestrei sau dimensiuni relative. Spre exemplu:

<frameset rows = 30, 40%, *, 2*>

divide fereastra in patru row frames, fiecare avand dimensiunile enumerate in lista: primul rand are 30 pixels inaltime, al doilea are 40% din inaltimea totala a ferestrei. Folosirea wildcard-ului "*" se refera la "restul ferestrei": deci restul ferestrei este impartit in alte doua cadre, ultimul dintre ele fiind de doua ori mai mare decat primul. Figura 2 arata rezultatul acestei declaratii (dimensiunea de 30 pixels va fi caracterizata de marimea ferestrei de navigare):
 

30 pixels in inaltime
40% din 
inaltimea 
ferestrei
1/3 of restul ferestrei
2/3 din restul 
ferestrei

 

Figura 2.

 Cel mai avantajos mod de lucru este prin procentaj si cel putin un "*". In fisierul a.html spre exemplu, fereastra este divizata in doua randuri egale prin rows = *,* (similar cu "50%, 50%" or "50%,*").

Observatie: Fiecare cadru poate fi la randul sau impartit in coloane sau randuri (daca fereastra a fost initial impartita in coloane, fiecare cadru rezultat va fi impartit apoi in randuri. Exista doua modalitati de divizare a cadrelor: direct nesting si indirect nesting.

Ancorarea (Targeting)
Fara cadre, folosirea unui hyperlink implica schimbarea intregii ferestre prin aducerea continutului paginii destinatie a legaturii. Prin folosirea cadrelor, actualizarea se poate realiza pe cadre individuale, colectii de cadre sau pe intreaga fereastra prin folosirea ancorelor (targets= numele cadrelor specificate prin definitii <frame name = ...> ). Ancorele sunt specificate in declaratia hyperlink din body document.

Spre exemplu, sa presupunem ca body documentul z.html contine un hyperlink:

<a href = "b.html" target = "upper"> Click here </a>

Cand se selecteaza hyperlink-ul in cadrul din dreapta (unde este localizat z.html), cadrul de sus se va schimba din x.html in b.html. Deci prin alegerea unui hyperlink intr-un cadru se poate actualiza un alt cadru fara modificarea celorlalte. Analog, target poate fi ales "lower_left" or "lower_right" pentru actualizarea cadrelor din partea de jos a ferestrei.